<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //  1、下面代码分别输出什么？前自增(自减)与后自增(自减)的区别？
      var a = 1;
      var b = ++a + ++a;
      console.log(b);//5
      //自增前置：会先把变量自身的值改变（+1），用改变之后的值去参与其他运算
      //自减前置：会先把变量自身的值改变（-1），用改变之后的值去参与其他运算
      var a = 1;
      var b = a++ + a++;
      console.log(b);//3
      //自增后置：会先把变量本身的值参与运算，再把变量的值改变（+1）
      //自减后置：会先把变量本身的值参与运算，再把变量的值改变（-1）


      
      //  2、分析下面代码，请问 j 和 y 分别是多少？
      var i = 100;
      i++;
      j = i++;//101
      y = ++j;//102



      //  3、JS中哪些值通过 Boolean 转换出来的值为 false?
      //   1. 0
      //   2. 空字符串
      //   3. NaN
      //   4. undefiend
      //   5. null


      //  4、分析下面代码的结果并解释原因
      var a = 1;
      var b = 2;

      console.log(a && b);//2  碰到假值，就会短路，不会执行后面的代码
      console.log(a || b);//1  碰到真值会短路，不会执行后面的代码



      //  5、以下代码输出的结果分别是什么？
      var a = true && '' && 12306;
      var b = false || '' || undefined || 'bluej' || 12306;

      console.log(a);//""  //false
      console.log(b);//'bluej'  //true



      //  6、分析下面代码，分别输出什么？
      var str = "12306";
      var str1 = 1;
      var num = 12306;
      var boo = true;

      console.log(str == num);//true
      console.log(str === num);//false
      console.log(str1 == boo);//true
      console.log(str1 === boo);//false



      //  7、判断输入的年份是否为闰年，如果是则弹出true，否则弹出false
      //  闰年的条件：能被4整除且不能被100整除，或者 能被100整除也能被400整除；
    var year = prompt("请输入年份：");
    if(year % 4 === 0 && year % 100 !== 0 || year % 400 == 0){
       alert("true");
    }else{
       alert("false");
    }
    </script>
  </body>
</html>
